Skip to content

Add San Mateo County General Assistance#8360

Open
hua7450 wants to merge 13 commits into
PolicyEngine:mainfrom
hua7450:ca-smc-ga
Open

Add San Mateo County General Assistance#8360
hua7450 wants to merge 13 commits into
PolicyEngine:mainfrom
hua7450:ca-smc-ga

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented May 20, 2026

Fixes #8359.

Summary

Adds San Mateo County General Assistance (SMC GA) as a local California cash assistance program.

Regulatory Authority

  • San Mateo County HSA General Assistance Fact Sheet (Feb 2025)
  • San Mateo County HSA Standards of Assistance Chart (C-335 Rev. 12.2025)
  • San Mateo County Board Resolution 21-720, Modifications A–O (Sept 2021, full implementation March 1, 2022)
  • San Mateo County Board File 26-290 (Apr 7, 2026 Board Memo) — NMOHC-with-BHRS/SMMC-referral COLA increase to $1,626.07 effective Jan 1, 2026

Eligibility

Requirement Source How Modeled
San Mateo County residency Fact Sheet p.1 in_smc
At least 18 years old Fact Sheet p.1 age >= minimum_age (parameter)
Qualified immigration status Fact Sheet p.1 ca_smc_general_assistance_immigration_status_eligible_person
No minor children in SPM unit Resolution 21-720 p.2 WHEREAS clause: "individuals who have no minor children" ~has_minor_child
Not currently receiving SSI Board Memo p.1 (Interim Aid Reimbursement framing) ssi == 0 (already implies categorical + income test + takeup)
Not CAPI-eligible Fact Sheet p.1 (CAPI is the off-ramp for aged/blind/disabled LPRs without 40 SSI-qualifying quarters); Board Memo IAR framing ~ca_capi_eligible_person
Work requirement Fact Sheet p.1 Assumed met — see Work Requirement
Countable income strictly below payment standard Fact Sheet p.2 "Maximum Aid Payment" Strict < (per-applicant after scaling)
Countable property strictly below $1,464 Fact Sheet p.2; C-335 chart Strict < against flat limit

Payment Standards

Per the C-335 chart, by living arrangement:

Living arrangement Maximum Aid Payment Effective Date
Independent Living $732 2023-10-01
Drug & Alcohol Treatment Center $732 2023-10-01
NMOHC without BHRS/SMMC referral $732 2023-10-01
NMOHC with BHRS/SMMC referral $1,599.07 → $1,626.07 2025-01-01 → 2026-01-01

NMOHC-with-referral tracks the California SSI NMOHC rate (CDSS-set, annual Jan-1 COLA). Pre-2025 amounts are not in the available source PDFs; noted with an inline comment in payment_standard.yaml.

Property Rules

  • Flat $1,464 limit (not scaled by number of applicants) — household-level resource pooling matches SSI/SNAP/TANF; couples cannot double the limit by breaking out.
  • Vehicle exemption: one vehicle per SPM unit excluded at the household average value, plus a partial exclusion of $2,928 against the combined equity of additional vehicles. Computed as max(additional_vehicle_equity - $2,928, 0). PolicyEngine has only aggregate household_vehicles_value and household_vehicles_owned, so the average-based proportional approximation is the only viable approach.

Income and Benefit

  • Earned-income deduction: 20% (Resolution Modification E aligns SMC with CalFresh; cross-cites 7 CFR § 273.9(d)(2)).
  • Income pooling: all SPM-unit member income is summed (regardless of categorical eligibility) — a unit with a high-income member should not qualify regardless of who applies.
  • Per-applicant scaling: payment standard and benefit are per eligible person; total benefit = (standard − per-person countable income) × n_eligible.

Work Requirement

San Mateo GA imposes a work requirement, but for an initial applicant it is satisfied by being employable or willing to seek and accept work — the applicant does not have to be working (let alone full-time) at the time of application. Willingness/employability and ongoing work-program compliance are behavioral attributes we don't track at the moment, so the work requirement is assumed met and does not gate eligibility. Modeling it as a full-time-hours test would wrongly exclude the unemployed applicants the program is designed to serve.

Accordingly, this PR does not implement a work-requirement gate. The earlier ca_smc_general_assistance_meets_work_requirements variable and its weekly_hours_threshold / senior_exemption_age parameters were removed.

New cross-program input: is_in_work_program

A generic Person/MONTH boolean input (in variables/household/demographic/person/, alongside is_disabled, is_in_k12_school, etc.) for marking work-program participation (VRS Work Center, CalWORKs Welfare-to-Work, SNAP E&T, TANF work activities, ABAWD). It is not currently wired into SMC GA eligibility (the work requirement is assumed met), but is kept in this PR as a reusable building block for programs that later model work-program participation explicitly.

Related Fix (Alameda County)

One pre-existing Alameda registry bug remains fixed in this PR:

  • programs.yaml parameter prefix: gov.local.ca.ala.gagov.local.ca.ala.general_assistance, to match the actual parameter folder structure.

The earlier in_ala.py county-string typo ("Alameda_COUNTY_CA""ALAMEDA_COUNTY_CA") was merged separately via #8594 and is no longer part of this diff. This branch has been merged up to main. The single changelog.d/ca-smc-ga.added.md fragment now covers the PR.

Not Modeled (by design)

Requirement Source Reason
Work-requirement compliance (willingness/employability, ongoing work-program participation) Fact Sheet p.1 Behavioral; not tracked — assumed met for initial applicants
15-day county residency Fact Sheet p.1 We don't track length-of-county-residency at the moment
Identification / SSN verification Fact Sheet p.1 Verification flows are administrative
Interview, QR-7 reporting, renewal Fact Sheet p.2 Administrative process
Application for other potential income Fact Sheet p.1 (and Board Memo IAR framing) Modeled via ssi == 0 and ~ca_capi_eligible_person gates
Drug-felon / fleeing-felon disqualifications Fact Sheet p.2 (Client Responsibility) Not in available source data
Pre-October 2023 historical amounts C-335 chart Authoritative pre-Oct-2023 amounts not in available sources; verified_start_year: 2025 in programs.yaml
Pre-January 2025 NMOHC-with-referral rates C-335 chart CDSS sets the rate annually; pre-2025 values not in available sources

Files

parameters/gov/local/ca/smc/general_assistance/
variables/gov/local/ca/smc/general_assistance/
tests/policy/baseline/gov/local/ca/smc/general_assistance/
variables/household/demographic/person/is_in_work_program.py   (new reusable input, currently unused)
programs.yaml                                                   (SMC entry + Alameda parameter_prefix fix)
changelog.d/ca-smc-ga.added.md

Test plan

  • 60 SMC GA tests pass
  • make format clean / ruff check passes
  • CI passes

@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (bd1ae42) to head (2acac8f).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##             main     #8360       +/-   ##
============================================
+ Coverage   77.77%   100.00%   +22.22%     
============================================
  Files           1        13       +12     
  Lines           9       166      +157     
============================================
+ Hits            7       166      +159     
+ Misses          2         0        -2     
Flag Coverage Δ
unittests 100.00% <100.00%> (+22.22%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@hua7450 hua7450 marked this pull request as ready for review May 22, 2026 20:28
@hua7450 hua7450 requested a review from PavelMakarchuk May 25, 2026 13:34
hua7450 added a commit to hua7450/policyengine-us that referenced this pull request Jun 7, 2026
- Date couple grant ($454) at 2011-01-01 to match the stable single rate;
  document the frozen-standards rationale (single $336 unchanged since 2011).
- Drop PAROLED_ONE_YEAR from qualified immigration statuses (time-limited
  parole conflicts with EHSD's 'no limitation on stay'); aligns with Santa
  Clara (PolicyEngine#8358) and San Mateo (PolicyEngine#8360) County GA. Add comment + test.
- Re-anchor personal-property limit, fill-the-gap, and no-children references
  from the GA-80 brochure (which lacks those figures) to the EHSD program page.
- Note only SSDI bars eligibility; OASDI retirement/survivors count as income.
- Add tests: income=0 -> full $336, income==$336 -> ineligible/$0, three
  eligible adults -> single $336, personal property summed across members.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hua7450 and others added 2 commits June 7, 2026 01:35
An initial applicant only needs to be employable or willing to seek and
accept work, which we don't track, so the work requirement no longer gates
eligibility. Remove the meets_work_requirements variable, its
weekly_hours_threshold and senior_exemption_age parameters, and its test;
strip the now-defunct is_in_work_program inputs from the surviving tests.
Keep the is_in_work_program input variable as a reusable cross-program
boolean (currently unused).

Move the changelog fragment to the top-level ca-smc-ga.added.md and drop
the redundant Alameda fix fragment (already on main).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add San Mateo County General Assistance

1 participant